import { login, mobile } from '@/api/user.js'
import { TEL, SEND } from '@/contents/reg.js'
import { withMsg, withMsg2 } from '@/utils/request.js'
// import {Notify} from 'vant'
export default {
  data() {
    return {
      user: {
        mobile: '',
        code: ''
      },
      pattern: SEND,
      disable: true,
      num: 20
    }
  },
  methods: {
    // 校验函数返回 true 表示校验通过，false 表示不通过
    validator(val) {
      return TEL.test(val)
    },
    // 表单验证成功/发起登陆请求
    async onSubmit(aa) {
      // 原始
      // login(aa)
      //   .then((res) => {
      //     Notify({type: 'success', message: '登陆成功！' })
      //     sessionStorage.setItem('token', 'Bearer ' + res.data.data.token)
      //     // 1s后跳转主页
      //     this.$router.push({
      //       path: 'home'
      //     })
      //   })
      //   .catch((err) => {
      //     Notify(err.response.data.message)
      //   })
      // 封装1
      // withMsg(login(aa),'登陆成功！' (res) => {
      //   sessionStorage.setItem('token', 'Bearer ' + res.data.data.token)
      //   this.$router.push({
      //     path: 'home'
      //   })
      // })
      // 封装2
      const res = await withMsg2(login(aa), '登陆成功！')
      sessionStorage.setItem('token', 'Bearer ' + res.data.data.token)
      this.$router.push({
        path: 'tarbar'
      })
    },
    // 发送验证码
    async send() {
      // 1. 校验手机号
      try {
        await this.$refs.loginForm.validate('mobile')
      } catch (err) {
        return alert(err.message)
      }
      // 2. 验证通过，显示倒计时
      this.disable = false
      const timer = setInterval(() => {
        this.num--
      }, 1000)
      setTimeout(() => {
        this.disable = true
        this.num = 20
        clearInterval(timer)
      }, 20000)
      // 原始方法
      // mobile(this.user.mobile)
      //   .then(() => {
      //     Notify({ type: 'success', message: '验证码发送成功，请稍后！' })
      //   })
      //   .catch((err) => {
      //     Notify(err.response.data.message)
      //   })
      // 封装1
      // withMsg2(mobile(this.user.mobile),'验证码获取成功，请稍后！')
      // 封装2
      withMsg(mobile(this.user.mobile), '验证码获取成功，请稍后！')
    },
    // 返回
    goBack() {
      this.$router.push('/')
    }
  }
}
